# -*- coding: utf-8 -*-
# @Env    : v-3.5.4
# @File   : __init__.py.py
# @Author : Kevin.Liu
# @Date   : 2019/1/5
# @Desc   : 启动配置
from flask import url_for, redirect, Flask

from blog.config import DevConfig
from blog.controllers import blog, manage
from blog.extensions import bcrypt
from blog.models import db


def create_app(obejct_name):
    """工厂方法创建应有实例"""
    app = Flask(__name__)
    # 加载配置文件
    # 使用 config.from_object() 而不使用 app.config['DEBUG']
    # 是因为这样可以加载 class DevConfig 的配置变量集合，而不需要一项一项的添加和修改。
    app.config.from_object(DevConfig)
    # 指定数据库配置
    db.init_app(app)
    bcrypt.init_app(app)

    # @app.route('/')
    # def index():
    #     return redirect(url_for("blog.home"))

    # 将蓝图注册到app对象
    app.register_blueprint(blog.blog_blueprint)
    app.register_blueprint(manage.manage_blueprint)

    return app
